package cn.zyq.charging.cost.dao.repository;

import cn.zyq.charging.cost.pojo.po.CostRulePO;

import java.util.List;

public interface CostRuleCacheRepository {

    /**
     * (计价方法calculateCost()调用了getMatchCostRuleByTime()，getMatchCostRuleByTime()调用了getCostRule()):
     *     在CostServiceImpl中的getCostRule()方法中
     *     1.先用costRuleCacheRepository.getCostRuleByStationId(stationId)去redis中获取计价规则
     *     2.如果从redis中获取到了数据，则直接返回。
     *     3.如果redis中没有数据，则用costRuleRepository.getCostRuleByStationId(stationId)从mysql数据库中获取计价规则。
     *     4.如果获取到了就再调用本方法saveCostRule()将获取的计价规则存入到redis中。
     * 通过站点id从redis查询计价规则
     * @param stationId 充电站id
     * @return 保存了计价规则的List集合
     */
    List<CostRulePO>  getCostRuleByStationId(Integer stationId);

    /**
     * 保存计价规则到redis
     * @param stationId 充电站id
     * @param costRulePOS 计价规则的List集合
     */
    void saveCostRule(Integer stationId,List<CostRulePO> costRulePOS);
}
